<?xml version="1.0" encoding="UTF-8"?>
<pmd>
    <useProjectRuleSet>false</useProjectRuleSet>
    <ruleSetFile>.ruleset</ruleSetFile>
    <rules>
        <rule>
            <name>CloneMethodMustImplementCloneable</name>
            <ruleset>Clone Implementation Rules</ruleset>
        </rule>
        <rule>
            <name>UnusedImports</name>
            <ruleset>Import Statement Rules</ruleset>
        </rule>
        <rule>
            <name>UseSingleton</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>SimplifyBooleanReturns</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>SimplifyBooleanExpressions</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>SwitchStmtsShouldHaveDefault</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidDeeplyNestedIfStmts</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidReassigningParameters</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>ConstructorCallsOverridableMethod</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>AccessorClassGeneration</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>FinalFieldCouldBeStatic</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>CloseResource</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>OptimizableToArrayCall</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>EqualsNull</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>IdempotentOperations</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>MissingBreakInSwitch</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>CompareObjectsWithEquals</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>PositionLiteralsFirstInComparisons</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>UnnecessaryLocalBeforeReturn</name>
            <ruleset>Design Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidCatchingThrowable</name>
            <ruleset>Strict Exception Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidThrowingRawExceptionTypes</name>
            <ruleset>Strict Exception Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidThrowingNullPointerException</name>
            <ruleset>Strict Exception Rules</ruleset>
        </rule>
        <rule>
            <name>UnusedPrivateField</name>
            <ruleset>Unused Code Rules</ruleset>
        </rule>
        <rule>
            <name>UnusedLocalVariable</name>
            <ruleset>Unused Code Rules</ruleset>
        </rule>
        <rule>
            <name>UnusedPrivateMethod</name>
            <ruleset>Unused Code Rules</ruleset>
        </rule>
        <rule>
            <name>MoreThanOneLogger</name>
            <ruleset>Java Logging Rules</ruleset>
        </rule>
        <rule>
            <name>LoggerIsNotStaticFinal</name>
            <ruleset>Java Logging Rules</ruleset>
        </rule>
        <rule>
            <name>SystemPrintln</name>
            <ruleset>Java Logging Rules</ruleset>
        </rule>
        <rule>
            <name>StringInstantiation</name>
            <ruleset>String and StringBuffer Rules</ruleset>
        </rule>
        <rule>
            <name>InefficientStringBuffering</name>
            <ruleset>String and StringBuffer Rules</ruleset>
        </rule>
        <rule>
            <name>InsufficientStringBufferDeclaration</name>
            <ruleset>String and StringBuffer Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidInstantiatingObjectsInLoops</name>
            <ruleset>Optimization Rules</ruleset>
        </rule>
        <rule>
            <name>UseArrayListInsteadOfVector</name>
            <ruleset>Optimization Rules</ruleset>
        </rule>
        <rule>
            <name>UseStringBufferForStringAppends</name>
            <ruleset>Optimization Rules</ruleset>
        </rule>
        <rule>
            <name>EmptyIfStmt</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>EmptyWhileStmt</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>EmptySwitchStatements</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>UnnecessaryConversionTemporary</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>DoubleCheckedLocking</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>ReturnFromFinallyBlock</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>UnconditionalIfStatement</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>BooleanInstantiation</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidDecimalLiteralsInBigDecimalConstructor</name>
            <ruleset>Basic Rules</ruleset>
        </rule>
        <rule>
            <name>UnusedImports</name>
            <ruleset>Import Statement Rules</ruleset>
        </rule>
        <rule>
            <name>SuspiciousOctalEscape</name>
            <ruleset>Controversial Rules</ruleset>
        </rule>
        <rule>
            <name>DefaultPackage</name>
            <ruleset>Controversial Rules</ruleset>
        </rule>
        <rule>
            <name>MethodWithSameNameAsEnclosingClass</name>
            <ruleset>Naming Rules</ruleset>
        </rule>
        <rule>
            <name>SuspiciousEqualsMethodName</name>
            <ruleset>Naming Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidFieldNameMatchingTypeName</name>
            <ruleset>Naming Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidFieldNameMatchingMethodName</name>
            <ruleset>Naming Rules</ruleset>
        </rule>
        <rule>
            <name>ExcessiveParameterList</name>
            <ruleset>Code Size Rules</ruleset>
        </rule>
        <rule>
            <name>FinalizeDoesNotCallSuperFinalize</name>
            <ruleset>Finalizer Rules</ruleset>
        </rule>
        <rule>
            <name>FinalizeShouldBeProtected</name>
            <ruleset>Finalizer Rules</ruleset>
        </rule>
        <rule>
            <name>AvoidCallingFinalize</name>
            <ruleset>Finalizer Rules</ruleset>
        </rule>
        <rule>
            <name>ProperCloneImplementation</name>
            <ruleset>Clone Implementation Rules</ruleset>
        </rule>
        <rule>
            <name>CloneThrowsCloneNotSupportedException</name>
            <ruleset>Clone Implementation Rules</ruleset>
        </rule>
        <rule>
            <name>CloneMethodMustImplementCloneable</name>
            <ruleset>Clone Implementation Rules</ruleset>
        </rule>
    </rules>
    <includeDerivedFiles>false</includeDerivedFiles>
    <violationsAsErrors>true</violationsAsErrors>
</pmd>
